Resumen

Row

Última actualización: 2020-07-02

Row

Casos positivos

4,023 (+ 270 )

Casos activos

2,417 (60.1%)(+196)

Casos recuperados

1,589 (39.5%)(+73)

Row

Casos fallecidos

17 (0.4%)(+1)

Hospitalizados

60 (+ 10 )

En salón

54 (90%)(+10)

En UCI

6 (10%)(+0)

Row

Gráfico de variación de las cantidades de casos en el tiempo

Tabla de cantidades de casos en cantones

Casos positivos

Row

Última actualización: 2020-07-02

Row

Casos positivos

4,023 (+ 270 )

Casos positivos mujeres

1,721 ( 42.8 %)

Casos positivos hombres

2,302 ( 57.2 %)

Row

Casos positivos adultos mayores

191 ( 4.7 %)

Casos positivos menores de edad

580 ( 14.4 %)

Row

Mapa de casos positivos en cantones

Gráfico de cantones con mayor cantidad de casos positivos

Casos activos

Row

Última actualización: 2020-07-02

Row

Casos activos

2,417 (+ 196 )

Casos activos mujeres

1,000 ( 41.4 %)

Casos activos hombres

1,417 ( 58.6 %)

Row

Casos activos adultos mayores

112 ( 4.6 %)

Casos activos menores de edad

370 ( 15.3 %)

Row

Mapa de casos activos en cantones

Gráfico de cantones con mayor cantidad de casos activos

Casos recuperados

Row

Última actualización: 2020-07-02

Row

Casos recuperados

1,589 (+ 73 )

Casos recuperados mujeres

713 ( 44.9 %)

Casos recuperados hombres

876 ( 55.1 %)

Row

Casos recuperados adultos mayores

68 ( 4.3 %)

Casos recuperados menores de edad

210 ( 13.2 %)

Row

Mapa de casos recuperados en cantones

Gráfico de cantones con mayor cantidad de casos recuperados

Casos fallecidos

Row

Última actualización: 2020-07-02

Row

Casos fallecidos

17 (+ 1 )

Casos fallecidos mujeres

8 ( 47.1 %)

Casos fallecidos hombres

9 ( 52.9 %)

Row

Casos fallecidos adultos mayores

11 ( 64.7 %)

Casos fallecidos menores de edad

0 ( 0 %)

Row

Mapa de casos fallecidos en cantones

Gráfico de cantones con mayor cantidad de casos fallecidos

Mapa de Calor

Row

Última actualización: 2020-07-02

---
title: "Estado del COVID-19 en Costa Rica"
output: 
  flexdashboard::flex_dashboard:
    orientation: rows
    social: menu
    source_code: embed
    vertical_layout: fill    
---

```{r setup, include=FALSE}

#-------------------- Paquetes --------------------

library(flexdashboard)
library(plotly)
library(dygraphs)
library(dplyr)
library(tidyr)
library(sf)
library(leaflet)
library(leaflet.extras)

#-------------------- Colores ---------------------

color_positivos <- 'blue'
color_activos <- 'red'
color_recuperados <- 'green'
color_fallecidos <- 'purple'

color_nuevos_positivos <- 'grey'

color_hospitalizados <- 'orange'
color_salon <- 'brown'
color_uci <- 'pink'

#--------------------- Íconos ---------------------

icono_positivos <- 'fas fa-heartbeat'
icono_activos <- 'fas fa-prescription-bottle-alt'
icono_recuperados <- 'fas fa-heart'
icono_fallecidos <- 'fas fa-plus-square'

icono_nuevos_positivos <- 'fas fa-medkit'

icono_hospitalizados <- 'fas fa-hospital'
icono_salon <- 'far fa-hospital'
icono_uci <- 'far fa-hospital'

#--------------- Otros parámetros -----------------

# Separador para lectura de datos CSV
caracter_separador <- ','

#--------------- Archivos de datos ----------------

archivo_general_pais <- 'https://raw.githubusercontent.com/geoprocesamiento-2020i/datos/master/covid19/ms/07_02_CSV_GENERAL.csv'

archivo_positivos_cantones <- 'https://raw.githubusercontent.com/geoprocesamiento-2020i/datos/master/covid19/ms/07_02_CSV_POSITIVOS.csv'
archivo_activos_cantones <- 'https://raw.githubusercontent.com/geoprocesamiento-2020i/datos/master/covid19/ms/07_02_CSV_ACTIVOS.csv'
archivo_recuperados_cantones <- 'https://raw.githubusercontent.com/geoprocesamiento-2020i/datos/master/covid19/ms/07_02_CSV_RECUP.csv'
archivo_fallecidos_cantones <- 'https://raw.githubusercontent.com/geoprocesamiento-2020i/datos/master/covid19/ms/07_02_CSV_FALLECIDOS.csv'

#---------------------- Datos ---------------------

# Data frame de datos generales por país
df_general_pais <- read.csv(archivo_general_pais, sep = caracter_separador)
df_general_pais$FECHA <- as.Date(df_general_pais$FECHA, "%d/%m/%Y")

# Data frame de datos generales por país en la última fecha
df_general_pais_ultima_fecha <- 
  df_general_pais %>%
  filter(FECHA == max(FECHA, na.rm = TRUE))

# Data frame de casos positivos por cantón
df_positivos_cantones_ancho <- read.csv(archivo_positivos_cantones, sep = caracter_separador)
df_positivos_cantones <-
  df_positivos_cantones_ancho %>%
  pivot_longer(cols = c(-cod_provin, -provincia, -cod_canton, -canton), names_to = "fecha", values_to = "positivos")
df_positivos_cantones$fecha <- as.Date(df_positivos_cantones$fecha, "X%d.%m.%Y")

# Data frame de casos positivos por cantón en la última fecha
df_positivos_cantones_ultima_fecha <- 
  df_positivos_cantones %>%
  filter(fecha == max(fecha, na.rm = TRUE)) %>%
  select(cod_canton, positivos)

# Data frame de casos activos por cantón en la última fecha
df_activos_cantones_ancho <- read.csv(archivo_activos_cantones, sep = caracter_separador)
df_activos_cantones <- 
  df_activos_cantones_ancho %>%
  pivot_longer(cols = c(-cod_provin, -provincia, -cod_canton, -canton), names_to = "fecha", values_to = "activos")
df_positivos_cantones$fecha <- as.Date(df_positivos_cantones$fecha, "X%d.%m.%Y")

# Data frame de casos activos por cantón en la última fecha
df_activos_cantones_ultima_fecha <- 
  df_activos_cantones %>%
  filter(fecha == max(fecha, na.rm = TRUE)) %>%
  select(cod_canton, activos)

# Data frame de casos recuperados por cantón en la última fecha
df_recuperados_cantones_ancho <- read.csv(archivo_recuperados_cantones, sep = caracter_separador)
df_recuperados_cantones <- 
  df_recuperados_cantones_ancho %>%
  pivot_longer(cols = c(-cod_provin, -provincia, -cod_canton, -canton), names_to = "fecha", values_to = "recuperados")
df_recuperados_cantones$fecha <- as.Date(df_recuperados_cantones$fecha, "X%d.%m.%Y")

# Data frame de casos recuperados por cantón en la última fecha
df_recuperados_cantones_ultima_fecha <- 
  df_recuperados_cantones %>%
  filter(fecha == max(fecha, na.rm = TRUE)) %>%
  select(cod_canton, recuperados)

# Data frame de casos fallecidos por cantón
df_fallecidos_cantones_ancho <- read.csv(archivo_fallecidos_cantones, sep = caracter_separador)
df_fallecidos_cantones <-
  df_fallecidos_cantones_ancho %>%
  pivot_longer(cols = c(-cod_provin, -provincia, -cod_canton, -canton), names_to = "fecha", values_to = "fallecidos")
df_fallecidos_cantones$fecha <- as.Date(df_fallecidos_cantones$fecha, "X%d.%m.%Y")

# Data frame de casos fallecidos por cantón en la última fecha
df_fallecidos_cantones_ultima_fecha <- 
  df_fallecidos_cantones %>%
  filter(fecha == max(fecha, na.rm = TRUE)) %>%
  select(cod_canton, fallecidos)


# Objeto sf de cantones simplicado
sf_cantones <- st_read('https://raw.githubusercontent.com/geoprocesamiento-2020i/datos/master/delimitacion-territorial-administrativa/cr/ign/cr_limite_cantonal_ign_wgs84.geojson')

# Objeto sf de casos positivos en cantones en la última fecha
sf_positivos_cantones_ultima_fecha <-
  left_join(sf_cantones, df_positivos_cantones_ultima_fecha, by = c('cod_canton')) %>%
  arrange(desc(positivos))

# Objeto sf de casos activos en cantones en la última fecha
sf_activos_cantones_ultima_fecha <-
  left_join(sf_cantones, df_activos_cantones_ultima_fecha, by = c('cod_canton')) %>%
  arrange(desc(activos))

# Objeto sf de casos recuperados en cantones en la última fecha
sf_recuperados_cantones_ultima_fecha <-
  left_join(sf_cantones, df_recuperados_cantones_ultima_fecha, by = c('cod_canton')) %>%
  arrange(desc(recuperados))

# Objeto sf de casos fallecidos en cantones en la última fecha
sf_fallecidos_cantones_ultima_fecha <-
  left_join(sf_cantones, df_fallecidos_cantones_ultima_fecha, by = c('cod_canton')) %>%
  arrange(desc(fallecidos))

#Total de cantones para la tabla de resumen

df_positivos_activos_cantones_ultima_actualizacion <- left_join(df_activos_cantones_ultima_fecha, df_positivos_cantones_ultima_fecha, by = c( "cod_canton"))

df_recuperados_fallecidos_cantones_ultima_actualizacion  <- left_join(df_recuperados_cantones_ultima_fecha, df_fallecidos_cantones_ultima_fecha, by = c( "cod_canton"))

df_total_cantones_ultima_actualizacion  <- left_join(df_positivos_activos_cantones_ultima_actualizacion, df_recuperados_fallecidos_cantones_ultima_actualizacion)

sf_total_cantones_ultima_actualizacion <- 
  left_join(sf_cantones, df_total_cantones_ultima_actualizacion, by = c('cod_canton'))

# CÓDIGO PARA LA SECCIÓN OPCIONAL DE LA TAREA PROGRAMADA

# Archivo CSV que proviene de la hoja con datos de distritos del archivo Excel con datos generales
archivo_general_distritos <- 'https://raw.githubusercontent.com/geoprocesamiento-2020i/datos/master/covid19/ms/07_02_CSV_GENERAL_DISTRITOS.csv'

# Carga del archivo CSV en un data frame
df_general_distritos_sucio <- read.csv(archivo_general_distritos)

# Eliminación de filas y columnas que corresponden a encabezados, totales, etc.
df_general_distritos_ultima_fecha <- df_general_distritos_sucio[-c(1:5), -c(1, 3, 10, 11)]

# Cambio de nombre de las columnas
df_general_distritos_ultima_fecha <- 
  df_general_distritos_ultima_fecha %>%
  rename(provincia = X.1,
         canton = X.3,
         distrito = X.4,
         positivos = X.5,
         recuperados = X.6,
         fallecidos = X.7,
         activos = X.8
  ) %>%  
  mutate_all(funs(sub("^\\s*$", NA, .))) %>% # Se llenan con NA las celdas con espacios vacíos
  mutate(distrito = if_else(distrito == "El Carmen", "Carmen", distrito)) %>%
  mutate(distrito = if_else(distrito == "Valle de La Estrella", "Valle La Estrella", distrito)) %>%
  mutate(distrito = if_else(distrito == "La Amistad", "La  Amistad", distrito)) %>%
  fill(c(1,2)) # Se rellenan "hacia abajo" las columnas de provincia y cantón con valor NA

# Borrado de las filas con valor de NA o de "Sin información de distrito" en la columna de distrito
df_general_distritos_ultima_fecha <- df_general_distritos_ultima_fecha[!is.na(df_general_distritos_ultima_fecha$distrito), ]
df_general_distritos_ultima_fecha <- df_general_distritos_ultima_fecha[df_general_distritos_ultima_fecha$distrito != 'Sin información de distrito', ]

# Conversión a integer de los tipos de datos de las columnas con cifras
df_general_distritos_ultima_fecha$positivos <- as.integer(df_general_distritos_ultima_fecha$positivos)
df_general_distritos_ultima_fecha$recuperados <- as.integer(df_general_distritos_ultima_fecha$recuperados)
df_general_distritos_ultima_fecha$fallecidos <- as.integer(df_general_distritos_ultima_fecha$fallecidos)
df_general_distritos_ultima_fecha$activos <- as.integer(df_general_distritos_ultima_fecha$activos)

# Objeto sf de distritos
sf_distritos <- st_read('https://raw.githubusercontent.com/geoprocesamiento-2020i/datos/master/delimitacion-territorial-administrativa/cr/ign/cr_limite_distrital_ign_wgs84.geojson')

# Objeto sf de casos positivos en distritos en la última fecha
sf_general_distritos_ultima_fecha <-
  left_join(sf_distritos, df_general_distritos_ultima_fecha, by = c('provincia', 'canton', 'distrito'))

# Objeto mapa de calor
distritoscentroides <- st_centroid(sf_distritos)
sf_distritos_centroides_ultima_fecha <-
  left_join( distritoscentroides, df_general_distritos_ultima_fecha, distritoscentroides, by = c('distrito'))  %>%
  arrange(desc(activos))

```

Resumen
=======================================================================
Row {data-height=1}
-----------------------------------------------------------------------
### **Última actualización: `r  df_general_pais_ultima_fecha$FECHA`**


Row
-----------------------------------------------------------------------

### Casos positivos {.value-box}
```{r}

valueBox(value = paste(format(df_general_pais_ultima_fecha$positivos, big.mark = ","), "",   "(+",df_general_pais_ultima_fecha$nue_posi,")", sep = " "), 
         caption = "Total de casos positivos", 
         icon = icono_positivos, 
         color = color_positivos
)

```

### Casos activos {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$activos, big.mark = ","), " (",
                       round(100 * df_general_pais_ultima_fecha$activos / df_general_pais_ultima_fecha$positivos, 1), 
                       "%)","(+",df_general_pais_ultima_fecha$nue_acti,")", sep = ""), 
         caption = "Total de casos activos",
         icon = icono_activos, 
         color = color_activos
)
```

### Casos recuperados {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$RECUPERADOS, big.mark = ","), " (",
                       round(100 * df_general_pais_ultima_fecha$RECUPERADOS / df_general_pais_ultima_fecha$positivos, 1), 
                       "%)","(+",df_general_pais_ultima_fecha$NUE_RECUP,")", sep = ""), 
         caption = "Total de casos recuperados",
         icon = icono_recuperados, 
         color = color_recuperados
)
```

Row
-----------------------------------------------------------------------

### Casos fallecidos {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$fallecidos, big.mark = ","), " (",
                       round(100 * df_general_pais_ultima_fecha$fallecidos / df_general_pais_ultima_fecha$positivos, 1), 
                       "%)","(+",df_general_pais_ultima_fecha$nue_falleci,")", sep = ""), 
         caption = "Total de casos fallecidos",
         icon = icono_fallecidos, 
         color = color_fallecidos
)
```

### Hospitalizados {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$hospital, big.mark = ","), "","(+",df_general_pais_ultima_fecha$nue_hospi,")", sep = " "), 
         caption = "Total de hospitalizados", 
         icon = icono_hospitalizados,
         color = color_hospitalizados
)
```

### En salón {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$salon, big.mark = ","), " (",
                       round(100 * df_general_pais_ultima_fecha$salon / df_general_pais_ultima_fecha$hospital, 1), 
                       "%)","(+",df_general_pais_ultima_fecha$nue_salon,")", sep = ""), 
         caption = "Hospitalizados en salón",
         icon = icono_salon, 
         color = color_salon
)
```

### En UCI {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$UCI, big.mark = ","), " (",
                       round(100 * df_general_pais_ultima_fecha$UCI / df_general_pais_ultima_fecha$hospital, 1), 
                       "%)","(+",df_general_pais_ultima_fecha$nue_UCI,")", sep = ""), 
         caption = "Hospitalizados en UCI",
         icon = icono_uci, 
         color = color_uci
)
```

Row {data-width=400}
-----------------------------------------------------------------------

### Gráfico de variación de las cantidades de casos en el tiempo
```{r}
plot_ly(data = df_general_pais,
                x = ~ FECHA,
                y = ~ positivos, 
                name = 'Positivos', 
                type = 'scatter',
                mode = 'lines',
                line = list(color = color_positivos)) %>%
  config(locale = "es") %>%
  add_trace(y = ~ activos,
                    name = 'Activos',
                    mode = 'lines',
                    line = list(color = color_activos)) %>%
  add_trace(y = ~ RECUPERADOS,
                    name = 'Recuperados',
                    mode = 'lines',
                    line = list(color = color_recuperados)) %>%
  add_trace(y = ~ fallecidos,
                    name = 'Fallecidos',
                    mode = 'lines',
                    line = list(color = color_fallecidos)) %>%  
  layout(title = "",
                 yaxis = list(title = "Cantidad de casos"),
                 xaxis = list(title = "Fecha"),
                 legend = list(x = 0.1, y = 0.9),
                 hovermode = "compare")
```

### Tabla de cantidades de casos en cantones
```{r}
st_drop_geometry(sf_total_cantones_ultima_actualizacion) %>% 
  select(Provincia = provincia, Canton = canton, Positivos = positivos, Activos = activos, Recuperados = recuperados, Fallecidos = fallecidos) %>%
  DT::datatable(rownames = FALSE,
                options = list(searchHighlight = TRUE, 
                               language = list(url = '//cdn.datatables.net/plug-ins/1.10.11/i18n/Spanish.json')
                               )
  )
```

Casos positivos
=======================================================================
Row {data-height=1}
-----------------------------------------------------------------------
### **Última actualización: `r  df_general_pais_ultima_fecha$FECHA`**


Row
-----------------------------------------------------------------------

### Casos positivos {.value-box}
```{r}
valueBox(value = paste(format(df_general_pais_ultima_fecha$positivos, big.mark = ","), "",   "(+",df_general_pais_ultima_fecha$nue_posi,")", sep = " "), 
         caption = "Total de casos positivos", 
         icon = icono_positivos, 
         color = color_positivos
)
```

### Casos positivos mujeres {.value-box}
```{r}

valueBox(value = paste(format(df_general_pais_ultima_fecha$muj_posi, big.mark = ","), " (",
                       round(100 * df_general_pais_ultima_fecha$muj_posi / df_general_pais_ultima_fecha$positivos, 1), 
                       "%)", sep = " ") ,
         caption = "Total de casos positivos Mujeres" ,
         icon = icono_positivos , 
         color = color_positivos
)

```

### Casos positivos hombres {.value-box}
```{r}

valueBox(value = paste(format(df_general_pais_ultima_fecha$hom_posi, big.mark = ","), " (",
                       round(100 * df_general_pais_ultima_fecha$hom_posi / df_general_pais_ultima_fecha$positivos, 1), 
                       "%)", sep = " ") ,
         caption = "Total de casos positivos Hombres" ,
         icon = icono_positivos , 
         color = color_positivos
)

```

Row
-----------------------------------------------------------------------

### Casos positivos adultos mayores {.value-box}
```{r}

valueBox(value = paste(format(df_general_pais_ultima_fecha$am_posi, big.mark = ","), " (",
                       round(100 * df_general_pais_ultima_fecha$am_posi / df_general_pais_ultima_fecha$positivos, 1), 
                       "%)", sep = " ") ,
         caption = "Total de casos positivos Adultos Mayores" ,
         icon = icono_positivos , 
         color = color_positivos
)

```

### Casos positivos menores de edad {.value-box}
```{r}

valueBox(value = paste(format(df_general_pais_ultima_fecha$menor_posi, big.mark = ","), " (",
                       round(100 * df_general_pais_ultima_fecha$menor_posi / df_general_pais_ultima_fecha$positivos, 1), 
                       "%)", sep = " ") ,
         caption = "Total de casos positivos Menores de Edad" ,
         icon = icono_positivos , 
         color = color_positivos
)

```

Row {data-width=400}
-----------------------------------------------------------------------

### Mapa de casos positivos en cantones
```{r}

paleta_azul <- colorBin(palette = "Blues", 
                        domain = sf_positivos_cantones_ultima_fecha$positivos,
                        bins = 10
               )

leaflet_cantones <- leaflet(sf_positivos_cantones_ultima_fecha) %>% 
  fitBounds(lng1 = -86, lng2 = -82, lat1 = 8, lat2 = 11) %>%
  addProviderTiles(providers$OpenStreetMap.Mapnik, group = "OpenStreetMap") %>%
  addPolygons(fillColor = ~paleta_azul(positivos), stroke=T, fillOpacity = 1,
              color="black", weight=0.2, opacity= 0.5,
              group = "Cantones",
              popup = paste("Provincia: ", sf_positivos_cantones_ultima_fecha$provincia, "
", "Cantón: ", sf_positivos_cantones_ultima_fecha$canton, "
", "Positivos: ", sf_positivos_cantones_ultima_fecha$positivos ) ) %>% addLegend("bottomright", pal = paleta_azul, values = ~positivos, title = "Casos positivos", opacity = 1 ) %>% addLayersControl( baseGroups = c("OpenStreetMap"), overlayGroups = c("Cantones"), options = layersControlOptions(collapsed = TRUE) ) %>% addMiniMap( toggleDisplay = TRUE, position = "bottomleft", tiles = providers$OpenStreetMap.Mapnik ) # Despliegue del mapa leaflet_cantones ``` ### Gráfico de cantones con mayor cantidad de casos positivos ```{r} st_drop_geometry(sf_positivos_cantones_ultima_fecha) %>% mutate(canton = factor(canton, levels = canton)) %>% top_n(n = 10, wt = positivos) %>% plot_ly(x = ~ canton, y = ~ positivos, type = "bar", text = ~ positivos, textposition = 'auto', marker = list(color = color_positivos) ) %>% layout(yaxis = list(title = "Cantidad de casos positivos"), xaxis = list(title = ""), margin = list(l = 10, r = 10, b = 10, t = 10, pad = 2 ) ) ``` Casos activos ======================================================================= Row {data-height=1} ----------------------------------------------------------------------- ### **Última actualización: `r df_general_pais_ultima_fecha$FECHA`** Row ----------------------------------------------------------------------- ### Casos activos {.value-box} ```{r} valueBox(value = paste(format(df_general_pais_ultima_fecha$activos, big.mark = ","), "", "(+",df_general_pais_ultima_fecha$nue_acti,")", sep = " "), caption = "Total de casos activos", icon = icono_activos, color = color_activos ) ``` ### Casos activos mujeres {.value-box} ```{r} valueBox(value = paste(format(df_general_pais_ultima_fecha$muj_acti, big.mark = ","), " (", round(100 * df_general_pais_ultima_fecha$muj_acti / df_general_pais_ultima_fecha$activos, 1), "%)", sep = " ") , caption = "Total de casos activos Mujeres" , icon = icono_activos , color = color_activos ) ``` ### Casos activos hombres {.value-box} ```{r} valueBox(value = paste(format(df_general_pais_ultima_fecha$hom_acti, big.mark = ","), " (", round(100 * df_general_pais_ultima_fecha$hom_acti / df_general_pais_ultima_fecha$activos, 1), "%)", sep = " ") , caption = "Total de casos activos hombres" , icon = icono_activos , color = color_activos ) ``` Row ----------------------------------------------------------------------- ### Casos activos adultos mayores {.value-box} ```{r} valueBox(value = paste(format(df_general_pais_ultima_fecha$am_acti, big.mark = ","), " (", round(100 * df_general_pais_ultima_fecha$am_acti / df_general_pais_ultima_fecha$activos, 1), "%)", sep = " ") , caption = "Total de casos activos Adultos Mayores" , icon = icono_activos , color = color_activos ) ``` ### Casos activos menores de edad {.value-box} ```{r} valueBox(value = paste(format(df_general_pais_ultima_fecha$menor_acti, big.mark = ","), " (", round(100 * df_general_pais_ultima_fecha$menor_acti / df_general_pais_ultima_fecha$activos, 1), "%)", sep = " ") , caption = "Total de casos activos Menores de Edad" , icon = icono_activos , color = color_activos ) ``` Row {data-width=400} ----------------------------------------------------------------------- ### Mapa de casos activos en cantones ```{r} paleta_roja <- colorBin(palette = "Reds", domain = sf_positivos_cantones_ultima_fecha$activos, bins = 10 ) leaflet_cantones <- leaflet(sf_activos_cantones_ultima_fecha) %>% fitBounds(lng1 = -86, lng2 = -82, lat1 = 8, lat2 = 11) %>% addProviderTiles(providers$OpenStreetMap.Mapnik, group = "OpenStreetMap") %>% addPolygons(fillColor = ~paleta_roja(activos), stroke=T, fillOpacity = 1, color="black", weight=0.2, opacity= 0.5, group = "Cantones", popup = paste("Provincia: ", sf_activos_cantones_ultima_fecha$provincia, "
", "Cantón: ", sf_activos_cantones_ultima_fecha$canton, "
", "Activos: ", sf_activos_cantones_ultima_fecha$activos ) ) %>% addLegend("bottomright", pal = paleta_roja, values = ~activos, title = "Casos activos", opacity = 1 ) %>% addLayersControl( baseGroups = c("OpenStreetMap"), overlayGroups = c("Cantones"), options = layersControlOptions(collapsed = TRUE) ) %>% addMiniMap( toggleDisplay = TRUE, position = "bottomleft", tiles = providers$OpenStreetMap.Mapnik ) # Despliegue del mapa leaflet_cantones ``` ### Gráfico de cantones con mayor cantidad de casos activos ```{r} st_drop_geometry(sf_activos_cantones_ultima_fecha) %>% mutate(canton = factor(canton, levels = canton)) %>% top_n(n = 10, wt = activos) %>% plot_ly(x = ~ canton, y = ~ activos, type = "bar", text = ~ activos, textposition = 'auto', marker = list(color = color_activos) ) %>% layout(yaxis = list(title = "Cantidad de casos activos"), xaxis = list(title = ""), margin = list(l = 10, r = 10, b = 10, t = 10, pad = 2 ) ) ``` Casos recuperados ======================================================================= Row {data-height=1} ----------------------------------------------------------------------- ### **Última actualización: `r df_general_pais_ultima_fecha$FECHA`** Row ----------------------------------------------------------------------- ### Casos recuperados {.value-box} ```{r} valueBox(value = paste(format(df_general_pais_ultima_fecha$RECUPERADOS, big.mark = ","), "", "(+",df_general_pais_ultima_fecha$NUE_RECUP,")", sep = " "), caption = "Total de casos recuperados", icon = icono_recuperados, color = color_recuperados ) ``` ### Casos recuperados mujeres {.value-box} ```{r} valueBox(value = paste(format(df_general_pais_ultima_fecha$MUJ_RECUP, big.mark = ","), " (", round(100 * df_general_pais_ultima_fecha$MUJ_RECUP / df_general_pais_ultima_fecha$RECUPERADOS, 1), "%)", sep = " ") , caption = "Total de casos recuperados Mujeres" , icon = icono_recuperados , color = color_recuperados ) ``` ### Casos recuperados hombres {.value-box} ```{r} valueBox(value = paste(format(df_general_pais_ultima_fecha$HOM_RECUP, big.mark = ","), " (", round(100 * df_general_pais_ultima_fecha$HOM_RECUP / df_general_pais_ultima_fecha$RECUPERADOS, 1), "%)", sep = " ") , caption = "Total de casos recuperados hombres" , icon = icono_recuperados , color = color_recuperados ) ``` Row ----------------------------------------------------------------------- ### Casos recuperados adultos mayores {.value-box} ```{r} valueBox(value = paste(format(df_general_pais_ultima_fecha$AM_RECUP, big.mark = ","), " (", round(100 * df_general_pais_ultima_fecha$AM_RECUP / df_general_pais_ultima_fecha$RECUPERADOS, 1), "%)", sep = " ") , caption = "Total de casos recuperados Adultos Mayores" , icon = icono_recuperados , color = color_recuperados ) ``` ### Casos recuperados menores de edad {.value-box} ```{r} valueBox(value = paste(format(df_general_pais_ultima_fecha$MENOR_RECUP, big.mark = ","), " (", round(100 * df_general_pais_ultima_fecha$MENOR_RECUP / df_general_pais_ultima_fecha$RECUPERADOS, 1), "%)", sep = " ") , caption = "Total de casos recuperados Menores de Edad" , icon = icono_recuperados , color = color_recuperados ) ``` Row {data-width=400} ----------------------------------------------------------------------- ### Mapa de casos recuperados en cantones ```{r} paleta_verde <- colorBin(palette = "Greens", domain = sf_recuperados_cantones_ultima_fecha$recuperados, bins = 10 ) leaflet_cantones <- leaflet(sf_recuperados_cantones_ultima_fecha) %>% fitBounds(lng1 = -86, lng2 = -82, lat1 = 8, lat2 = 11) %>% addProviderTiles(providers$OpenStreetMap.Mapnik, group = "OpenStreetMap") %>% addPolygons(fillColor = ~paleta_verde(recuperados), stroke=T, fillOpacity = 1, color="black", weight=0.2, opacity= 0.5, group = "Cantones", popup = paste("Provincia: ", sf_recuperados_cantones_ultima_fecha$provincia, "
", "Cantón: ", sf_recuperados_cantones_ultima_fecha$canton, "
", "recuperados: ", sf_recuperados_cantones_ultima_fecha$recuperados ) ) %>% addLegend("bottomright", pal = paleta_verde, values = ~recuperados, title = "Casos recuperados", opacity = 1 ) %>% addLayersControl( baseGroups = c("OpenStreetMap"), overlayGroups = c("Cantones"), options = layersControlOptions(collapsed = TRUE) ) %>% addMiniMap( toggleDisplay = TRUE, position = "bottomleft", tiles = providers$OpenStreetMap.Mapnik ) # Despliegue del mapa leaflet_cantones ``` ### Gráfico de cantones con mayor cantidad de casos recuperados ```{r} st_drop_geometry(sf_recuperados_cantones_ultima_fecha) %>% mutate(canton = factor(canton, levels = canton)) %>% top_n(n = 10, wt = recuperados) %>% plot_ly(x = ~ canton, y = ~ recuperados, type = "bar", text = ~ recuperados, textposition = 'auto', marker = list(color = color_recuperados) ) %>% layout(yaxis = list(title = "Cantidad de casos recuperados"), xaxis = list(title = ""), margin = list(l = 10, r = 10, b = 10, t = 10, pad = 2 ) ) ``` Casos fallecidos ======================================================================= Row {data-height=1} ----------------------------------------------------------------------- ### **Última actualización: `r df_general_pais_ultima_fecha$FECHA`** Row ----------------------------------------------------------------------- ### Casos fallecidos {.value-box} ```{r} valueBox(value = paste(format(df_general_pais_ultima_fecha$fallecidos, big.mark = ","), "", "(+",df_general_pais_ultima_fecha$nue_falleci,")", sep = " "), caption = "Total de casos fallecidos", icon = icono_fallecidos, color = color_fallecidos ) ``` ### Casos fallecidos mujeres {.value-box} ```{r} valueBox(value = paste(format(df_general_pais_ultima_fecha$muj_fall, big.mark = ","), " (", round(100 * df_general_pais_ultima_fecha$muj_fall / df_general_pais_ultima_fecha$fallecidos, 1), "%)", sep = " ") , caption = "Total de casos recuperados Mujeres" , icon = icono_fallecidos , color = color_fallecidos ) ``` ### Casos fallecidos hombres {.value-box} ```{r} valueBox(value = paste(format(df_general_pais_ultima_fecha$hom_fall, big.mark = ","), " (", round(100 * df_general_pais_ultima_fecha$hom_fall / df_general_pais_ultima_fecha$fallecidos, 1), "%)", sep = " ") , caption = "Total de casos recuperados hombres" , icon = icono_fallecidos , color = color_fallecidos ) ``` Row ----------------------------------------------------------------------- ### Casos fallecidos adultos mayores {.value-box} ```{r} valueBox(value = paste(format(df_general_pais_ultima_fecha$am_fall, big.mark = ","), " (", round(100 * df_general_pais_ultima_fecha$am_fall / df_general_pais_ultima_fecha$fallecidos, 1), "%)", sep = " ") , caption = "Total de casos fallecidos Adultos Mayores" , icon = icono_fallecidos , color = color_fallecidos ) ``` ### Casos fallecidos menores de edad {.value-box} ```{r} valueBox(value = paste(format(df_general_pais_ultima_fecha$menor_fall, big.mark = ","), " (", round(100 * df_general_pais_ultima_fecha$menor_fall / df_general_pais_ultima_fecha$fallecidos, 1), "%)", sep = " ") , caption = "Total de casos fallecidos Menores de Edad" , icon = icono_fallecidos , color = color_fallecidos ) ``` Row {data-width=400} ----------------------------------------------------------------------- ### Mapa de casos fallecidos en cantones ```{r} paleta_morada <- colorBin(palette = "Purples", domain = sf_fallecidos_cantones_ultima_fecha$fallecidos, bins = 10 ) leaflet_cantones <- leaflet(sf_fallecidos_cantones_ultima_fecha) %>% fitBounds(lng1 = -86, lng2 = -82, lat1 = 8, lat2 = 11) %>% addProviderTiles(providers$OpenStreetMap.Mapnik, group = "OpenStreetMap") %>% addPolygons(fillColor = ~paleta_morada(fallecidos), stroke=T, fillOpacity = 1, color="black", weight=0.2, opacity= 0.5, group = "Cantones", popup = paste("Provincia: ", sf_fallecidos_cantones_ultima_fecha$provincia, "
", "Cantón: ", sf_fallecidos_cantones_ultima_fecha$canton, "
", "fallecidos: ", sf_fallecidos_cantones_ultima_fecha$fallecidos ) ) %>% addLegend("bottomright", pal = paleta_morada, values = ~fallecidos, title = "Casos fallecidos", opacity = 1 ) %>% addLayersControl( baseGroups = c("OpenStreetMap"), overlayGroups = c("Cantones"), options = layersControlOptions(collapsed = TRUE) ) %>% addMiniMap( toggleDisplay = TRUE, position = "bottomleft", tiles = providers$OpenStreetMap.Mapnik ) # Despliegue del mapa leaflet_cantones ``` ### Gráfico de cantones con mayor cantidad de casos fallecidos ```{r} st_drop_geometry(sf_fallecidos_cantones_ultima_fecha) %>% mutate(canton = factor(canton, levels = canton)) %>% top_n(n = 10, wt = fallecidos) %>% plot_ly(x = ~ canton, y = ~ fallecidos, type = "bar", text = ~ fallecidos, textposition = 'auto', marker = list(color = color_fallecidos) ) %>% layout(yaxis = list(title = "Cantidad de casos fallecidos"), xaxis = list(title = ""), margin = list(l = 10, r = 10, b = 10, t = 10, pad = 2 ) ) ``` Mapa de Calor ======================================================================= Row {data-height=1} ----------------------------------------------------------------------- ### **Última actualización: `r df_general_pais_ultima_fecha$FECHA`** ```{r} leaflet() %>% fitBounds(lng1 = -86, lng2 = -82, lat1 = 8, lat2 = 11) %>% addProviderTiles(providers$CartoDB.DarkMatter, group = "CartoDB.Dark") %>% addProviderTiles(providers$OpenStreetMap.Mapnik, group = "OpenStreetMap") %>% addHeatmap(data = sf_distritos_centroides_ultima_fecha, intensity= sf_distritos_centroides_ultima_fecha$activos, radius = 15, blur =25, max = 70)%>% addLayersControl(baseGroups = c("CartoDB.Dark", "OpenStreetMap"))%>% addMiniMap( toggleDisplay = TRUE, position = "bottomleft", tiles = providers$penStreetMap.Mapnik ) ```